package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 *  List集合
 *  List是Collection下面常见的一类集合.
 *  java.util.List接口是所有List的接口,它继承自Collection.
 *  常见的实现类:
 *  java.util.ArrayList:内部由数组实现,查询性能更好.
 *  java.util.LinkedList:内部由链表实现,增删性能更好.
 *
 *  List集合的特点是可以存放重复元素,并且有序.其提供了一套可以通过下标操作元素的方法.
 */
public class ListDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("one");
        list.add("two");
        list.add("three");
        list.add("four");
        list.add("five");

        /*
            E get(int index)
            获取指定下标对应的元素
         */
        //获取第三个元素
        String e = list.get(2);
        System.out.println(e);

        for (int i = 0;i<list.size();i++){
            e = list.get(i);
            System.out.println(e);
        }

        /*
            E set(int index,E e)
            将给定元素设置到指定位置返回值为该位置原有的元素.
            替换元素操作
         */

        String old = list.set(1,"six");
        System.out.println(list);
//        System.out.println("被替换的元素:"+old);

        //在不创建新集合的前提下,将list集合元素反转
        for (int i = 0;i<list.size()/2;i++){
            String o = list.set(i,list.get(list.size()-1-i));//将倒数位置上的元素设置到正数位置上
            list.set(list.size()-1-i,o);//正数位置上的元素设置到倒数位置上
        }
        System.out.println(list);
        Collections.reverse(list);
        System.out.println(list);
    }
}